﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

/// <summary>
/// Summary description for PerfilPracticante
/// </summary>
public class PerfilPracticante
{
    private string idPerfilPracticante;
    private string SolicitudPractica_idSolicitudPractica;
    private string ProgramaAcademico_nombreProgramaAcademico;
    private string descripcion;

    public PerfilPracticante(string idPerfilPracticante, string SolicitudPractica_idSolicitudPractica, string ProgramaAcademico_nombreProgramaAcademico, string descripcion)
    {
        this.idPerfilPracticante = idPerfilPracticante;
        this.SolicitudPractica_idSolicitudPractica = SolicitudPractica_idSolicitudPractica;
        this.ProgramaAcademico_nombreProgramaAcademico = ProgramaAcademico_nombreProgramaAcademico;
        this.descripcion = descripcion;
    }

	public PerfilPracticante()
	{
		//
		// TODO: Add constructor logic here
		//
	}

    public string EliminarPerfil()
    {
        BD bd = new BD();
        bd.AbrirConexion();
        String res = bd.Eliminar("PerfilPracticante", "idPerfilPracticante=" + idPerfilPracticante);
        bd.CerrarConexion();
        return res;
    }

    public List<String> ObtCaracteristicas()
    {
        BD bd = new BD();
        bd.AbrirConexion();
        String consulta = "select * from PerfilPracticante_has_CaracteristicaPerfil where PerfilPracticante_idPerfilPracticante="+idPerfilPracticante;
        DataTable res = bd.Consultar(consulta);
        bd.CerrarConexion();
        List<String> listcar = new List<String>();
        foreach (DataRow caracteristica in res.Rows)
        {
            listcar.Add(caracteristica["CaracteristicaPerfil_nombreCaracteristica"].ToString());
        }
        return listcar;
    }

    public string AsignarCaracteristicasAlPerfil(ListBox listcara)
    {
        if (idPerfilPracticante != "" && listcara.Items.Count!=0)
        {
            BD bd = new BD();
            bd.AbrirConexion();
            foreach (ListItem item in listcara.Items)
            {
                String caract=item.Value;
                string campos="(PerfilPracticante_idPerfilPracticante,CaracteristicaPerfil_nombreCaracteristica)";
                string valores="("+Convert.ToInt32(idPerfilPracticante)+",'"+caract+"')";
                string insert = bd.Insertar("PerfilPracticante_has_CaracteristicaPerfil", campos, valores);
            }
            return "Se asignaron las caracteristicas";
        }
        return "No se tiene idPerfilPracticante o no hay caracterisitcas para asignar";
    }

    public void AsigIdPerfilPracticante(string idPerfilPracticante)
    {
        this.idPerfilPracticante = idPerfilPracticante;
    }

    //Si el perfil existe, entonces se retorna la idPerfilPracticante de este sino retorna vacio.
    public string ExistePerfil()
    {
        BD bd = new BD();
        bd.AbrirConexion();
        string consulta = "select * from PerfilPracticante where SolicitudPractica_idSolicitudPractica=" + SolicitudPractica_idSolicitudPractica.ToString() + " AND ProgramaAcademico_nombreProgramaAcademico=" + "'" + ProgramaAcademico_nombreProgramaAcademico + "' AND descripcion like "+"'"+descripcion+"'";
        DataTable dt = bd.Consultar(consulta);
        bd.CerrarConexion();
        if (dt.Rows.Count == 1)
            return dt.Rows[0]["idPerfilPracticante"].ToString();
        return "";
    }
    
    public string GuardarPerfil()
    {
        string idPerfil = ExistePerfil();
        if (idPerfil=="")
        {
            BD bd = new BD();
            bd.AbrirConexion();
            string campos="(SolicitudPractica_idSolicitudPractica,ProgramaAcademico_nombreProgramaAcademico,descripcion)";
            string valores="("+Convert.ToInt32(SolicitudPractica_idSolicitudPractica)+",'"+ProgramaAcademico_nombreProgramaAcademico+"','"+descripcion+"')";
            string insert = bd.Insertar("PerfilPracticante", campos, valores);
            bd.CerrarConexion();
            return insert;
        }
        return idPerfil;
    }

    public DataTable ObtenerPerfilesPorIdSolicitud(string idSolicitudPractica)
    {
        if (idSolicitudPractica != "")
        {
            BD bd = new BD();
            bd.AbrirConexion();
            string consulta = "select * from PerfilPracticante where SolicitudPractica_idSolicitudPractica="+idSolicitudPractica;
            DataTable dt = bd.Consultar(consulta);
            bd.CerrarConexion();
            return dt;
        }
        else
            return null;
    }
}
